//class Solution {
//public:
//    bool lemonadeChange(vector<int>& bills) {
//        int five = 0, ten = 0;
//        for (auto e : bills)
//        {
//            if (e == 5) five++;
//            else if (e == 10)
//            {
//                if (five == 0) return false;
//                five--;
//                ten++;
//            }
//            else
//            {
//                if (five && ten)
//                {
//                    ten--;
//                    five--;
//                }
//                else if (five >= 3)
//                {
//                    five -= 3;
//                }
//                else
//                {
//                    return false;
//                }
//            }
//        }
//        return true;
//    }
//};

//class Solution {
//public:
//    int halveArray(vector<int>& nums) {
//        priority_queue<double> a;
//        double sum = 0.0;
//        for (int i : nums)
//        {
//            sum += i;
//            a.push(i);
//        }
//        int count = 0;
//        sum /= 2.0;
//        while (sum > 0)
//        {
//            count++;
//            double i = (a.top() / 2.0);
//            a.pop();
//            a.push(i);
//            sum -= i;
//        }
//        return count;
//
//
//    }
//};